這個練習在 Proxy Server 安裝,並在 Zabbix 中設定啟用。
由於監控資料有可能透過 Internet 傳送,為了符合資訊安全要求,建議在傳送時要進行加密。
Zabbix 在加密時支援 PSK 與 CRT 加密,為了能夠快速設定我們使用 PSK 加密方式進行實做。
root# dnf install -y chrony && systemctl enable --now chronyd
root# dnf install -y mysql-server && systemctl enable --now mysqld
root# echo "create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin; " | mysql -u root -h localhost
root# echo "create user 'zabbix_proxy'@'10.89.0.%' identified by 'P@ssw0rd'; " | mysql -u root -h localhost
root# echo "grant all privileges on zabbix_proxy.* to 'zabbix_proxy'@'10.89.0.%'; " | mysql -u root -h localhost
root# echo "SET GLOBAL log_bin_trust_function_creators = 1; " | mysql -u root -h localhost
root# dnf install -y podman podman-plugins runc
root# podman network create net_zabbix
root# podman pull docker.io/zabbix/zabbix-proxy-mysql:7.0.0-alpine
root# mkdir /zabbix_proxy/; cd /zabbix_proxy/
root# openssl rand -hex 32 > /zabbix_proxy/enc.key
資料傳送時除了 PSK 之外還要設定變 PSK Identify 名稱,兩者要相符才能和 Proxy 連接。
root# podman run -itd \
--name proxy_server11 \
--network net_zabbix \
--cap-add=net_raw \
-p 10051:10051 \
-e DB_SERVER_HOST="10.89.0.1" \
-e MYSQL_DATABASE="zabbix_proxy" \
-e MYSQL_USER="zabbix_proxy" \
-e MYSQL_PASSWORD="P@ssw0rd" \
-e ZBX_SERVER_HOST=172.16.1.11 \
-e ZBX_TLSCONNECT=psk \
-e ZBX_TLSACCEPT=psk \
-e ZBX_TLSPSKFILE=/var/lib/zabbix/enc/enc.key \
-e ZBX_PROXYMODE=1 \
-e ZBX_TLSPSKIDENTITY=class-proxy \
-v /zabbix_proxy/enc.key:/var/lib/zabbix/enc/enc.key:z,ro \
docker.io/zabbix/zabbix-proxy-mysql:7.0.0-alpine
我們必須透過 Zabbix UI 新增 Proxy 才能正式啟用它,設定時要設定以 PSK 密鑰做傳送,這個 PSK Key 是先前使用 OpenSSL 建的 Pre-Share Key,可以從 Proxy Server 的 /zabbix_proxy/enc.key 取得。
點選 [Administration] > [Proxies],安下 [Create Proxy]。
設定 Porxy name,mode 為 Passive
,並設定 Proxy 的 IP。
點選 [Encryption] 設定傳送加密方式。,加密方式使用 PSK,輸入 PSK Identify 編號與 PSK 密鑰。
設定後等待 Zabbix Server 與 Proxy 溝通,若成功會顯示連線時間。